package com.cetcs.kmga.dataManager.service.dataManager;

import com.cetcs.kmga.dataManager.entity.dataManager.vo.FTPFlowListVo;
import com.cetcs.kmga.dataManager.entity.dataManager.vo.FTPFlowTotalVo;
import com.cetcs.kmga.dataManager.entity.device.vo.KeyAndValueVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * 流量统计服务层
 *
 * @author xutao
 * @version V1.0 创建时间：2017-11-09 11:06
 *          Copyright 2017 by CETC
 */
public interface FTPFlowStatisticService {

    /**
     * 统计一段时间采集量的数组
     *
     * @param ftpId    采集数据源的ID
     * @param startDay 起始时间
     * @param endDay   结束时间
     * @return
     */
    List<FTPFlowListVo> findFTPDayFlowList(String ftpId, String startDay, String endDay);

    /**
     * 统计某一天采集量的数组
     *
     * @param ftpId   采集数据源ID
     * @param timeDay 某天日期
     * @return
     */
    List<FTPFlowListVo> findFTPHourFlowList(String ftpId, String timeDay);


    /**
     * 统计每天的入口与出口的量
     *
     * @param ftpId   采集数据源ID
     * @param name    采集数据源名称
     * @param timeDay 统计日期
     * @return
     */
    FTPFlowTotalVo findDayFlowTotalNum(String ftpId, String name, String timeDay);

    /**
     * 查询所有的集群
     *
     * @return
     */
    List<KeyAndValueVo> findAllFtpClients();

    /**
     * 24小时流量柱状图
     *
     * @param ftpId
     * @param timeDay
     * @return
     */
    Map<String, Object> findFtpHourBarGraph(String ftpId, String timeDay);

    /**
     * 近三十天流量柱状图
     *
     * @param ftpId
     * @param startDay
     * @param endDay
     * @return
     */
    Map<String, Object> findFtpDayBarGraph(String ftpId, String startDay, String endDay);

    /**
     * 统计当天的流量流向
     * @return
     */
    Map<String, Object> statFlowSvgGraph(HttpServletRequest request);
}
